<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>Dist::Milla - Distribution builder, Opinionated but Unobtrusive - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of Dist-Milla - MetaCPAN" href="https://metacpan.org/dist/Dist-Milla/releases.rss" />
        <link rel="canonical" href="./Dist::Milla.html" />
        <meta name="description" content="Distribution builder, Opinionated but Unobtrusive" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/Dist::Milla" />
<meta name="twitter:title"       content="Dist::Milla" />
<meta name="twitter:description" content="Distribution builder, Opinionated but Unobtrusive" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="./Dist::Milla.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of Dist-Milla was released.">
      <span class="relatize">05 Jul 2023 19:37:47 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/Dist-Milla">Dist-Milla</a>
  </li>
  <li>
    Module version: v1.0.22
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/Dist-Milla/source/lib/Dist/Milla.pm">Source</a>
    (<a href="https://metacpan.org/dist/Dist-Milla/source/lib/Dist/Milla.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/Dist-Milla/source/lib/Dist">Browse</a>
    (<a href="https://metacpan.org/dist/Dist-Milla/source/lib/Dist?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/Dist-Milla/changes">Changes</a>
    </li>
    <li>
      <a rel="noopener nofollow" class="nopopup" href="https://github.com/miyagawa/Dist-Milla">Homepage</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/Dist-Milla/contribute">How to Contribute</a>
    </li>
    <li>
        <a rel="noopener nofollow" data-keyboard-shortcut="g r" href="https://github.com/miyagawa/Dist-Milla">Repository</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://github.com/miyagawa/Dist-Milla/issues">Issues</a>
      (7)
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=Dist-Milla+v1.0.22" title="Matrix">Testers</a>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/MIYAGAWA/Dist-Milla-v1.0.22">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on Dist-Milla who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 1
      </div>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpancover.com/latest/Dist-Milla-v1.0.22/index.html">100.00% Coverage </a>
    </li>
    <li>
      License: perl_5
    </li>
    <li>
      Perl: v5.12.0
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/Dist-Milla/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Dist-Milla-v1.0.22.tar.gz">
      Download (<span itemprop="fileSize">25.25KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FMIYAGAWA%2FDist-Milla-v1.0.22%2Flib%2FDist%2FMilla.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Dist-Milla/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Dist-Milla/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:Dist-Milla">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="Dist-Milla">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Dist/Milla.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="MIYAGAWA/Dist-Milla-v1.0.22"
>v1.0.22
  (MIYAGAWA on 2023-07-05)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.21"
>v1.0.21
  (MIYAGAWA on 2022-02-13)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.20"
>v1.0.20
  (MIYAGAWA on 2018-04-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.19"
>v1.0.19
  (MIYAGAWA on 2018-04-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.18"
>v1.0.18
  (MIYAGAWA on 2017-06-06)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.17"
>v1.0.17
  (MIYAGAWA on 2016-11-25)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.16"
>v1.0.16
  (MIYAGAWA on 2016-05-08)</option>
<optgroup label="BackPAN">'
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.15"
>v1.0.15
  (MIYAGAWA on 2015-03-31)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.14"
>v1.0.14
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.13"
>v1.0.13
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.12"
>v1.0.12
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.11"
>v1.0.11
  (MIYAGAWA on 2015-01-18)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.10"
>v1.0.10
  (MIYAGAWA on 2015-01-12)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.9"
>v1.0.9
  (MIYAGAWA on 2014-11-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.8"
>v1.0.8
  (MIYAGAWA on 2014-09-11)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.7"
>v1.0.7
  (MIYAGAWA on 2014-09-10)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.6"
>v1.0.6
  (MIYAGAWA on 2014-09-10)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.5"
>v1.0.5
  (MIYAGAWA on 2014-05-08)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.4"
>v1.0.4
  (MIYAGAWA on 2013-08-26)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.3"
>v1.0.3
  (MIYAGAWA on 2013-07-23)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.2"
>v1.0.2
  (MIYAGAWA on 2013-04-21)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.1"
>v1.0.1
  (MIYAGAWA on 2013-04-14)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.0"
>v1.0.0
  (MIYAGAWA on 2013-04-07)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.7"
>v0.9.7
  (MIYAGAWA on 2013-04-03)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.6"
>v0.9.6
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.5"
>v0.9.5
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.4"
>v0.9.4
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.3"
>v0.9.3
  (MIYAGAWA on 2013-03-30)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.2"
>v0.9.2
  (MIYAGAWA on 2013-03-30)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.1"
>v0.9.1
  (MIYAGAWA on 2013-03-28)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.0"
>v0.9.0
  (MIYAGAWA on 2013-03-27)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/MIYAGAWA/Dist-Milla-v1.0.22/diff/' + encodeURIComponent(this.value) + '/lib/Dist/Milla.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="MIYAGAWA/Dist-Milla-v1.0.22"
>v1.0.22
  (MIYAGAWA on 2023-07-05)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.21"
>v1.0.21
  (MIYAGAWA on 2022-02-13)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.20"
>v1.0.20
  (MIYAGAWA on 2018-04-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.19"
>v1.0.19
  (MIYAGAWA on 2018-04-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.18"
>v1.0.18
  (MIYAGAWA on 2017-06-06)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.17"
>v1.0.17
  (MIYAGAWA on 2016-11-25)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.16"
>v1.0.16
  (MIYAGAWA on 2016-05-08)</option>
<optgroup label="BackPAN">'
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.15"
>v1.0.15
  (MIYAGAWA on 2015-03-31)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.14"
>v1.0.14
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.13"
>v1.0.13
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.12"
>v1.0.12
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.11"
>v1.0.11
  (MIYAGAWA on 2015-01-18)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.10"
>v1.0.10
  (MIYAGAWA on 2015-01-12)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.9"
>v1.0.9
  (MIYAGAWA on 2014-11-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.8"
>v1.0.8
  (MIYAGAWA on 2014-09-11)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.7"
>v1.0.7
  (MIYAGAWA on 2014-09-10)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.6"
>v1.0.6
  (MIYAGAWA on 2014-09-10)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.5"
>v1.0.5
  (MIYAGAWA on 2014-05-08)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.4"
>v1.0.4
  (MIYAGAWA on 2013-08-26)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.3"
>v1.0.3
  (MIYAGAWA on 2013-07-23)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.2"
>v1.0.2
  (MIYAGAWA on 2013-04-21)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.1"
>v1.0.1
  (MIYAGAWA on 2013-04-14)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.0"
>v1.0.0
  (MIYAGAWA on 2013-04-07)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.7"
>v0.9.7
  (MIYAGAWA on 2013-04-03)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.6"
>v0.9.6
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.5"
>v0.9.5
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.4"
>v0.9.4
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.3"
>v0.9.3
  (MIYAGAWA on 2013-03-30)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.2"
>v0.9.2
  (MIYAGAWA on 2013-03-30)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.1"
>v0.9.1
  (MIYAGAWA on 2013-03-28)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.0"
>v0.9.0
  (MIYAGAWA on 2013-03-27)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><a href="./Dist::Zilla.html" title="Dist::Zilla" class="ellipsis">Dist::Zilla</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::CheckChangesHasContent" title="Dist::Zilla::Plugin::CheckChangesHasContent" class="ellipsis">Dist::Zilla::Plugin::CheckChangesHasContent</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ConfirmRelease" title="Dist::Zilla::Plugin::ConfirmRelease" class="ellipsis">Dist::Zilla::Plugin::ConfirmRelease</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::CopyFilesFromBuild" title="Dist::Zilla::Plugin::CopyFilesFromBuild" class="ellipsis">Dist::Zilla::Plugin::CopyFilesFromBuild</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::CopyFilesFromRelease" title="Dist::Zilla::Plugin::CopyFilesFromRelease" class="ellipsis">Dist::Zilla::Plugin::CopyFilesFromRelease</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ExecDir" title="Dist::Zilla::Plugin::ExecDir" class="ellipsis">Dist::Zilla::Plugin::ExecDir</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ExtraTests" title="Dist::Zilla::Plugin::ExtraTests" class="ellipsis">Dist::Zilla::Plugin::ExtraTests</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::Git::Contributors" title="Dist::Zilla::Plugin::Git::Contributors" class="ellipsis">Dist::Zilla::Plugin::Git::Contributors</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::Git::GatherDir" title="Dist::Zilla::Plugin::Git::GatherDir" class="ellipsis">Dist::Zilla::Plugin::Git::GatherDir</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::Git::Init" title="Dist::Zilla::Plugin::Git::Init" class="ellipsis">Dist::Zilla::Plugin::Git::Init</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::GithubMeta" title="Dist::Zilla::Plugin::GithubMeta" class="ellipsis">Dist::Zilla::Plugin::GithubMeta</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::License" title="Dist::Zilla::Plugin::License" class="ellipsis">Dist::Zilla::Plugin::License</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::LicenseFromModule" title="Dist::Zilla::Plugin::LicenseFromModule" class="ellipsis">Dist::Zilla::Plugin::LicenseFromModule</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::Manifest" title="Dist::Zilla::Plugin::Manifest" class="ellipsis">Dist::Zilla::Plugin::Manifest</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::MetaJSON" title="Dist::Zilla::Plugin::MetaJSON" class="ellipsis">Dist::Zilla::Plugin::MetaJSON</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::MetaYAML" title="Dist::Zilla::Plugin::MetaYAML" class="ellipsis">Dist::Zilla::Plugin::MetaYAML</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ModuleBuildTiny" title="Dist::Zilla::Plugin::ModuleBuildTiny" class="ellipsis">Dist::Zilla::Plugin::ModuleBuildTiny</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::NameFromDirectory" title="Dist::Zilla::Plugin::NameFromDirectory" class="ellipsis">Dist::Zilla::Plugin::NameFromDirectory</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::NextRelease" title="Dist::Zilla::Plugin::NextRelease" class="ellipsis">Dist::Zilla::Plugin::NextRelease</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::PodSyntaxTests" title="Dist::Zilla::Plugin::PodSyntaxTests" class="ellipsis">Dist::Zilla::Plugin::PodSyntaxTests</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::Prereqs::FromCPANfile" title="Dist::Zilla::Plugin::Prereqs::FromCPANfile" class="ellipsis">Dist::Zilla::Plugin::Prereqs::FromCPANfile</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ReadmeAnyFromPod" title="Dist::Zilla::Plugin::ReadmeAnyFromPod" class="ellipsis">Dist::Zilla::Plugin::ReadmeAnyFromPod</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ReadmeFromPod" title="Dist::Zilla::Plugin::ReadmeFromPod" class="ellipsis">Dist::Zilla::Plugin::ReadmeFromPod</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ReversionOnRelease" title="Dist::Zilla::Plugin::ReversionOnRelease" class="ellipsis">Dist::Zilla::Plugin::ReversionOnRelease</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::ShareDir" title="Dist::Zilla::Plugin::ShareDir" class="ellipsis">Dist::Zilla::Plugin::ShareDir</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::StaticInstall" title="Dist::Zilla::Plugin::StaticInstall" class="ellipsis">Dist::Zilla::Plugin::StaticInstall</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::Test::Compile" title="Dist::Zilla::Plugin::Test::Compile" class="ellipsis">Dist::Zilla::Plugin::Test::Compile</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::TestRelease" title="Dist::Zilla::Plugin::TestRelease" class="ellipsis">Dist::Zilla::Plugin::TestRelease</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::UploadToCPAN" title="Dist::Zilla::Plugin::UploadToCPAN" class="ellipsis">Dist::Zilla::Plugin::UploadToCPAN</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Plugin::VersionFromMainModule" title="Dist::Zilla::Plugin::VersionFromMainModule" class="ellipsis">Dist::Zilla::Plugin::VersionFromMainModule</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::PluginBundle::Git" title="Dist::Zilla::PluginBundle::Git" class="ellipsis">Dist::Zilla::PluginBundle::Git</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Role::PluginBundle::Config::Slicer" title="Dist::Zilla::Role::PluginBundle::Config::Slicer" class="ellipsis">Dist::Zilla::Role::PluginBundle::Config::Slicer</a></li>
  <li><a href="https://metacpan.org/pod/Dist::Zilla::Role::PluginBundle::PluginRemover" title="Dist::Zilla::Role::PluginBundle::PluginRemover" class="ellipsis">Dist::Zilla::Role::PluginBundle::PluginRemover</a></li>
  <li><a href="https://metacpan.org/pod/Module::CPANfile" title="Module::CPANfile" class="ellipsis">Module::CPANfile</a></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/Dist::Milla/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=Dist%3A%3AMilla">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=Dist-Milla">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/MIYAGAWA/Dist-Milla-v1.0.22/view/lib/Dist/Milla.pm">This version</a>
    </li>
    <li>
      <a href="./Dist::Milla.html">Latest version</a>
    </li>
    <li>
<div class="plussers">
<div class="nav-header">++ed by:</div>
<div>
<a class="display-all" href="https://metacpan.org/author/PINGAN"><img src="https://www.gravatar.com/avatar/a02222e5e0e4fd24d52fc29a08ac6bcb?d=identicon&amp;s=20" title="PINGAN" alt="PINGAN"></a>
<a class="display-all" href="https://metacpan.org/author/CURTIS"><img src="https://www.gravatar.com/avatar/04d129ebd1821b5c3e2c56783fb38b3a?d=identicon&amp;s=20" title="CURTIS" alt="CURTIS"></a>
<a class="display-all" href="https://metacpan.org/author/HANNIBAL"><img src="https://www.gravatar.com/avatar/325c153e70a65543b9496e0ad7cdca29?d=identicon&amp;s=20" title="HANNIBAL" alt="HANNIBAL"></a>
<a class="display-all" href="https://metacpan.org/author/KLEE"><img src="https://www.gravatar.com/avatar/d2e8d4dc61049eb5f3af707173bb5460?d=identicon&amp;s=20" title="KLEE" alt="KLEE"></a>
<a class="display-all" href="https://metacpan.org/author/AERO"><img src="https://www.gravatar.com/avatar/c178cdf81a17c1c59c6ee898d9e09ccf?d=identicon&amp;s=20" title="AERO" alt="AERO"></a>
</div>
<!-- Display counts of plussers-->
<div>
    <a href="https://metacpan.org/dist/Dist-Milla/plussers">22 PAUSE users</a>
</div>
<div>
    15 non-PAUSE users
</div>
</div>
    </li>
    <li>
<div id="metacpan_contributors">
  <div>
    <button class="btn-link"
      onclick="$(this).hide(); $('#metacpan_contributors ul').slideDown(); return false;"
    >and 9 contributors</button>
  </div>
  <ul style="display: none">
    <li class="contributor"
      data-contrib-email="powerman@powerman.name"
    >
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=identicon&amp;s=20" />
      Alex Efros
    </li>
    <li class="contributor"
      data-cpan-author="CURTIS"
      data-contrib-email="curtis@cpan.org"
    >
      <a href="https://metacpan.org/author/CURTIS" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/04d129ebd1821b5c3e2c56783fb38b3a?d=identicon&amp;s=20" />
      Curtis Brandt
      </a>
    </li>
    <li class="contributor"
      data-contrib-email="grinnz@grinnz.com"
    >
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=identicon&amp;s=20" />
      Dan Book
    </li>
    <li class="contributor"
      data-contrib-email="flavio@polettix.it"
    >
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=identicon&amp;s=20" />
      Flavio Poletti
    </li>
    <li class="contributor"
      data-cpan-author="WOLLMERS"
      data-contrib-email="helmut@wollmersdorfer.at"
    >
      <a href="https://metacpan.org/author/WOLLMERS" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/cbca59e0e3c588786bfb7bc67ffb404f?d=identicon&amp;s=20" />
      Helmut Wollmersdorfer
      </a>
    </li>
    <li class="contributor"
      data-cpan-author="ETHER"
      data-contrib-email="ether@cpan.org"
    >
      <a href="https://metacpan.org/author/ETHER" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/bdc5cd06679e732e262f6c1b450a0237?d=identicon&amp;s=20" />
      Karen Etheridge
      </a>
    </li>
    <li class="contributor"
      data-contrib-email="mgreb@linode.com"
    >
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=identicon&amp;s=20" />
      mikegrb
    </li>
    <li class="contributor"
      data-cpan-author="DOLMEN"
      data-contrib-email="dolmen@cpan.org"
    >
      <a href="https://metacpan.org/author/DOLMEN" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/70d9b050bfe39350c234d710fadfcd39?d=identicon&amp;s=20" />
      Olivier Mengué
      </a>
    </li>
    <li class="contributor"
      data-contrib-email="code@sartak.org"
    >
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=identicon&amp;s=20" />
      Shawn M Moore
    </li>
  </ul>
</div>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/MIYAGAWA" class="author-name">Tatsuhiko Miyagawa</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Dist/Milla.pm&#39;" class="">
<option
  selected
  value="MIYAGAWA/Dist-Milla-v1.0.22"
>v1.0.22
  (MIYAGAWA on 2023-07-05)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.21"
>v1.0.21
  (MIYAGAWA on 2022-02-13)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.20"
>v1.0.20
  (MIYAGAWA on 2018-04-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.19"
>v1.0.19
  (MIYAGAWA on 2018-04-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.18"
>v1.0.18
  (MIYAGAWA on 2017-06-06)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.17"
>v1.0.17
  (MIYAGAWA on 2016-11-25)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.16"
>v1.0.16
  (MIYAGAWA on 2016-05-08)</option>
<optgroup label="BackPAN">'
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.15"
>v1.0.15
  (MIYAGAWA on 2015-03-31)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.14"
>v1.0.14
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.13"
>v1.0.13
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.12"
>v1.0.12
  (MIYAGAWA on 2015-01-19)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.11"
>v1.0.11
  (MIYAGAWA on 2015-01-18)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.10"
>v1.0.10
  (MIYAGAWA on 2015-01-12)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.9"
>v1.0.9
  (MIYAGAWA on 2014-11-22)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.8"
>v1.0.8
  (MIYAGAWA on 2014-09-11)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.7"
>v1.0.7
  (MIYAGAWA on 2014-09-10)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.6"
>v1.0.6
  (MIYAGAWA on 2014-09-10)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.5"
>v1.0.5
  (MIYAGAWA on 2014-05-08)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.4"
>v1.0.4
  (MIYAGAWA on 2013-08-26)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.3"
>v1.0.3
  (MIYAGAWA on 2013-07-23)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.2"
>v1.0.2
  (MIYAGAWA on 2013-04-21)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.1"
>v1.0.1
  (MIYAGAWA on 2013-04-14)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v1.0.0"
>v1.0.0
  (MIYAGAWA on 2013-04-07)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.7"
>v0.9.7
  (MIYAGAWA on 2013-04-03)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.6"
>v0.9.6
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.5"
>v0.9.5
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.4"
>v0.9.4
  (MIYAGAWA on 2013-04-02)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.3"
>v0.9.3
  (MIYAGAWA on 2013-03-30)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.2"
>v0.9.2
  (MIYAGAWA on 2013-03-30)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.1"
>v0.9.1
  (MIYAGAWA on 2013-03-28)</option>
<option
  
  value="MIYAGAWA/Dist-Milla-v0.9.0"
>v0.9.0
  (MIYAGAWA on 2013-03-27)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/Dist-Milla">Dist-Milla-v1.0.22</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage one &#10;
          • 1 direct dependent &#10;          • 1 total dependent
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="5"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="10"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="15"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="Dist-Milla-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="Dist-Milla-v1.0.22">
    <input type="hidden" name="author" value="MIYAGAWA">
    <input type="hidden" name="distribution" value="Dist-Milla">
    <button type="submit" class="favorite highlight"><span>37</span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="./Dist::Milla.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite highlight">
<span>37</span> ++</a>
</div>
   / <span>Dist::Milla</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="./Dist::Milla.html#NAME">NAME</a></li>
  <li><a href="./Dist::Milla.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="./Dist::Milla.html#DESCRIPTION">DESCRIPTION</a></li>
  <li><a href="./Dist::Milla.html#CONVENTIONS">CONVENTIONS</a></li>
  <li><a href="./Dist::Milla.html#GETTING-STARTED">GETTING STARTED</a></li>
  <li><a href="./Dist::Milla.html#WHY">WHY</a>
    <ul>
      <li><a href="./Dist::Milla.html#WHY-Dist::Zilla">WHY Dist::Zilla</a></li>
      <li><a href="./Dist::Milla.html#WHY-NOT-Module::Install">WHY NOT Module::Install</a></li>
    </ul>
  </li>
  <li><a href="./Dist::Milla.html#FAQ">FAQ</a>
    <ul>
      <li>
        <ul>
          <li><a href="./Dist::Milla.html#So-you-basically-wrote-a-simple-PluginBundle-and-some-wrapper,-and-give-that-a-name?">So you basically wrote a simple PluginBundle and some wrapper, and give that a name?</a></li>
          <li><a href="./Dist::Milla.html#That&#39;s-so-egoistic-for-you!-Why-not-just-Dist::Zilla::PluginBundle::Author::MIYAGAWA?">That&#39;s so egoistic for you! Why not just Dist::Zilla::PluginBundle::Author::MIYAGAWA?</a></li>
          <li><a href="./Dist::Milla.html#Dist::Zilla-feels-overkill.-If-you-don&#39;t-munge-code/docs,-what&#39;s-the-point?">Dist::Zilla feels overkill. If you don&#39;t munge code/docs, what&#39;s the point?</a></li>
          <li><a href="./Dist::Milla.html#Milla?">Milla?</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><a href="./Dist::Milla.html#AUTHOR">AUTHOR</a></li>
  <li><a href="./Dist::Milla.html#CONTRIBUTORS">CONTRIBUTORS</a></li>
  <li><a href="./Dist::Milla.html#COPYRIGHT">COPYRIGHT</a></li>
  <li><a href="./Dist::Milla.html#LICENSE">LICENSE</a></li>
  <li><a href="./Dist::Milla.html#SEE-ALSO">SEE ALSO</a></li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>Dist::Milla - Distribution builder, Opinionated but Unobtrusive</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code>  &gt; milla new Dist-Name
  &gt; cd Dist-Name

  &gt; milla build
  &gt; milla release</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p><b>Milla is a Dist::Zilla profile</b>. It is a collection of <a href="./Dist::Zilla.html">Dist::Zilla</a> plugin bundle, minting profile and a command line wrapper. It is designed around the &quot;Convention over Configuration&quot; philosophy (Opinionated), and by default doesn&#39;t rewrite module files nor requires you to change your workflow at all (Unobtrusive).</p>

<p>Experienced CPAN authors who know how to write CPAN distributions can keep writing the code like before, but can remove lots of cruft, then replace <a href="./Module::Install.html">Module::Install</a> and <a href="https://metacpan.org/pod/ShipIt">ShipIt</a> with <a href="./Dist::Zilla.html">Dist::Zilla</a> and Milla profile for authoring, while you don&#39;t need to <i>add</i> anything other than a shiny new <a href="https://metacpan.org/pod/cpanfile">cpanfile</a> (optional), and a simple <code>dist.ini</code> saying:</p>

<pre><code>  [@Milla]</code></pre>

<h1 id="CONVENTIONS">CONVENTIONS</h1>

<p>Milla is opinionated. Milla has a slightly bold assumption and convention like the followings, which are almost compatible to the sister project <a href="Minilla.html">Minilla</a>.</p>

<dl>

<dt id="Your-module-is-Pure-Perl,-and-files-are-stored-in-lib"><a id="Your"></a><a id="Your-module-is-Pure-Perl--and-files-are-stored-in-lib"></a>Your module is Pure Perl, and files are stored in <code>lib</code></dt>
<dd>

</dd>
<dt id="Your-executable-file-is-in-script-directory,-if-any"><a id="Your1"></a><a id="Your-executable-file-is-in-script-directory--if-any"></a>Your executable file is in <code>script</code> directory, if any</dt>
<dd>

</dd>
<dt id="Your-dist-sharedirs-must-be-in-share-directory,-if-any"><a id="Your2"></a><a id="Your-dist-sharedirs-must-be-in-share-directory--if-any"></a>Your dist sharedirs must be in <code>share</code> directory, if any</dt>
<dd>

</dd>
<dt id="Your-module-is-maintained-with-Git-and-git-ls-files-matches-with-what-you-will-release"><a id="Your3"></a>Your module is maintained with Git and <code>git ls-files</code> matches with what you will release</dt>
<dd>

</dd>
<dt id="Your-module-has-a-static-list-of-prerequisites-that-can-be-described-in-cpanfile"><a id="Your4"></a>Your module has a static list of prerequisites that can be described in <code>cpanfile</code></dt>
<dd>

</dd>
<dt id="Your-module-has-a-Changes-file"><a id="Your5"></a>Your module has a Changes file</dt>
<dd>

</dd>
</dl>

<p>If you have a module that doesn&#39;t work with these conventions, no worries. Because Milla is just a Dist::Zilla profile, you can just upgrade to <a href="./Dist::Zilla.html">Dist::Zilla</a> and enable/disable plugins that match with what you need.</p>

<h1 id="GETTING-STARTED"><a id="GETTING"></a>GETTING STARTED</h1>

<pre><code>  # First time only
  &gt; cpanm Dist::Milla
  &gt; milla setup

  # Make a new distribution
  &gt; milla new Dist-Name
  &gt; cd Dist-Name

  # git is already initialized and files are added for you
  &gt; git commit -m &quot;initial commit&quot;

  # Hack your code!
  &gt; $EDITOR lib/Dist/Name.pm t/dist-name.t cpanfile

  # (Optional; First time only) Make your build: This will get some boilerplate for git
  &gt; milla build
  &gt; git add Build.PL META.json README.md &amp;&amp; git commit -m &quot;git stuff&quot;

  # Done? Test and release it!
  &gt; $EDITOR Changes
  &gt; milla build
  &gt; milla release</code></pre>

<p>It&#39;s that easy.</p>

<p>You already have distributions with <a href="./Module::Install.html">Module::Install</a>, <a href="./Module::Build.html">Module::Build</a> or <a href="https://metacpan.org/pod/ShipIt">ShipIt</a>? Migrating is also trivial. See <a href="https://metacpan.org/pod/distribution/Dist-Milla/lib/Dist/Milla/Tutorial.pod#MIGRATING">&quot;MIGRATING&quot; in Dist::Milla::Tutorial</a> for more details.</p>

<h1 id="WHY">WHY</h1>

<h2 id="WHY-Dist::Zilla"><a id="WHY1"></a>WHY Dist::Zilla</h2>

<p>A lot of you might have heard of Dist::Zilla (dzil). If you already use it and love it, then you can stop reading this, or even using this module at all.</p>

<p>If you heard of dzil and think it&#39;s overkill or doesn&#39;t work for your module, this is why Milla exists.</p>

<p>If you have tried dzil ages ago and thought it was slow, or couldn&#39;t find how to configure it to do what you want it to do, Milla will be just for you.</p>

<p>First, let me tell you what&#39;s the reason to like Dist::Zilla.</p>

<p>Dist::Zilla doesn&#39;t do the job of installing of your module. So you can focus on the authoring side of things with dzil, while letting MakeMaker or Module::Build(::Tiny) to do the installation side of things. I like this design. David Golden also has written <a href="http://www.dagolden.com/index.php/752/why-im-using-distzilla/">an excellent blog post</a> explaining more details about what this means.</p>

<p>That said, I myself have avoided switching to Dist::Zilla for a long time. I actually tried a couple of times, but ended up giving up switching to it. You can google for &quot;Hate Dist::Zilla&quot; and will be able to find rants by similarly frustrated developers.</p>

<p>In my observation, typical problems/dislikes around Dist::Zilla can be categorized into one of the following thoughts.</p>

<dl>

<dt id="Dist::Zilla-is-slow"><a id="Dist"></a>Dist::Zilla is slow</dt>
<dd>

</dd>
<dt id="Dist::Zilla-has-too-many-dependencies"><a id="Dist1"></a>Dist::Zilla has too many dependencies</dt>
<dd>

</dd>
<dt id="Dist::Zilla-is-obtrusive"><a id="Dist2"></a>Dist::Zilla is obtrusive</dt>
<dd>

</dd>
<dt id="Dist::Zilla-makes-contributing-difficult"><a id="Dist3"></a>Dist::Zilla makes contributing difficult</dt>
<dd>

</dd>
<dt id="Dist::Zilla-isn&#39;t-just-worth-it"><a id="Dist4"></a><a id="Dist::Zilla-isn-t-just-worth-it"></a>Dist::Zilla isn&#39;t just worth it</dt>
<dd>

</dd>
</dl>

<p>Let&#39;s see how we can address them by using Milla, one at a time.</p>

<dl>

<dt id="Dist::Zilla-is-slow1"><a id="Dist5"></a>Dist::Zilla is slow</dt>
<dd>

<p>Moose, the object system Dist::Zilla uses under the hood, has been improved a lot for the past few years, and your development machine has got a much better CPU and SSD as well. For me personally, with all of Milla plugins loaded, <code>milla nop</code> takes roughly 1.5 second, which I would say is acceptable since I only need to run it at a distribution creation time and release time. More on that later.</p>

</dd>
<dt id="Dist::Zilla-has-too-many-dependencies1"><a id="Dist6"></a>Dist::Zilla has too many dependencies</dt>
<dd>

<p>This is true, and Milla doesn&#39;t solve that problem, because it <i>adds</i> more dependencies on top of Dist::Zilla.</p>

<p>For a quickstart with Milla-like distribution building environment without installing &quot;half of CPAN&quot;, see the sister project <a href="Minilla.html">Minilla</a>.</p>

</dd>
<dt id="Dist::Zilla-is-obtrusive1"><a id="Dist7"></a>Dist::Zilla is obtrusive</dt>
<dd>

<p>This was my main motivation for not switching to Dist::Zilla - the thought that using Dist::Zilla would require me to change my workflow.</p>

<p>The truth is, Dist::Zilla doesn&#39;t <i>require</i> you to change your workflow by itself. But a lot of popular plugins and workflow suggests doing so, by using stuff like PodWeaver, which requires you to switch to Dist::Zilla for everything and then generate the boilerplate, or munge your modules from there.</p>

<p>I don&#39;t care about the real boilerplate such as <code>MANIFEST</code>, <code>META.json</code> or <code>LICENSE</code> auto-generated, but don&#39;t personally like the idea of generating documentation or munging code.</p>

<p>I want to edit and maintain all the code and docs myself, and let the authoring tool figure out metadata <i>from</i> there, not the other way round.</p>

<p><b>With Milla, you don&#39;t need to change your workflow</b>, and it won&#39;t rewrite your <code>.pm</code> files at all. Like Module::Install&#39;s <code>all_from</code>, most of the metadata is figured out from your module and git, automatically.</p>

</dd>
<dt id="Dist::Zilla-makes-contributing-difficult1"><a id="Dist8"></a>Dist::Zilla makes contributing difficult</dt>
<dd>

<p>This is true for most Dist::Zilla based distributions.</p>

<p>Milla copies the plain <code>META.json</code> and <code>Build.PL</code> into the git repository you automatically bump on every release. And there won&#39;t be any code munging process required for the release (except bumping <code>$VERSION</code> automatically).</p>

<p>This means that the git repository can be installed as a standard CPAN distribution even without <a href="./Dist::Zilla.html">Dist::Zilla</a> installed, and collaborators can just hack your modules, run the tests with <code>prove -l t</code> and send a pull request just like a normal module without using dzil at all.</p>

<p><b>It&#39;s just a releaser who has to install and use Milla</b>.</p>

</dd>
<dt id="Dist::Zilla-isn&#39;t-just-worth-it1"><a id="Dist9"></a><a id="Dist::Zilla-isn-t-just-worth-it1"></a>Dist::Zilla isn&#39;t just worth it</dt>
<dd>

<p>Dist::Zilla has a lot of plugins to search from, and it&#39;s so easy for you to spend a few days until you settle with the configuration you need. <b>That is exactly why Milla exists</b>.</p>

<p>If you have tried Dist::Zilla before, you might have shared the same experience with me, where the default Basic profile doesn&#39;t do much. And when you started wondering or asking what other authors are doing, you would be overwhelmed by the amount of plugins and complexity introduced by the clever workflow.</p>

<p>Milla provides a sensible set of defaults that will work for 90% of people, and you don&#39;t need to waste time configuring your PluginBundle or searching for the plugin you need.</p>

</dd>
</dl>

<h2 id="WHY-NOT-Module::Install"><a id="WHY2"></a>WHY NOT Module::Install</h2>

<p>I loved Module::Install. I love how it automatically figures out what I want to do with a single <code>all_from</code> line. I liked the cleverness of its bundling itself into <code>inc</code>. But I know many collaborators hated it because you have no idea what plugins have to be installed when you use some funky plugins, and your users are puzzled when they try to install from the git repository because it says <code>Can&#39;t locate inc/Module/Install.pm</code>. This problem can be fixed, but I was not interested in doing so.</p>

<h1 id="FAQ">FAQ</h1>

<h3 id="So-you-basically-wrote-a-simple-PluginBundle-and-some-wrapper,-and-give-that-a-name?"><a id="So"></a><a id="So-you-basically-wrote-a-simple-PluginBundle-and-some-wrapper--and-give-that-a-name"></a>So you basically wrote a simple PluginBundle and some wrapper, and give that a name?</h3>

<p>Yes. That&#39;s the whole point. Think <a href="./Dist::Zilla.html">Dist::Zilla</a> as a framework (because it is!) and Milla is a (thin) application built on top of that.</p>

<h3 id="That&#39;s-so-egoistic-for-you!-Why-not-just-Dist::Zilla::PluginBundle::Author::MIYAGAWA?"><a id="That"></a><a id="That-s-so-egoistic-for-you--Why-not-just-Dist::Zilla::PluginBundle::Author::MIYAGAWA"></a>That&#39;s so egoistic for you! Why not just Dist::Zilla::PluginBundle::Author::MIYAGAWA?</h3>

<p>Part of the reason might be my egoism. But think about it - if I switched to Dist::Zilla and recommend everyone to use, I have to say, &quot;Hey, the way I use dzil is kind of cool. You can get that by using my <code>@MIYAGAWA</code> bundle&quot;.</p>

<p>Wouldn&#39;t that be more egoistic than giving it a different name?</p>

<p>I wrote my own <a href="PSGI.html">PSGI</a> implementation, and didn&#39;t give it a name PSGI::MIYAGAWA - it&#39;s called <a href="Plack.html">Plack</a>. I wrote a kick-ass, lightweight CPAN installer, and didn&#39;t give it a name CPAN::Installer::MIYAGAWA - it&#39;s called <a href="https://metacpan.org/pod/cpanm">cpanm</a>.</p>

<p>Because I <i>think</i> this can be recommended for many people, and want to make it better by incorporating contributions, I gave it a different name other than my own personal name bundle.</p>

<h3 id="Dist::Zilla-feels-overkill.-If-you-don&#39;t-munge-code/docs,-what&#39;s-the-point?"><a id="Dist10"></a><a id="Dist::Zilla-feels-overkill.-If-you-don-t-munge-code-docs--what-s-the-point"></a>Dist::Zilla feels overkill. If you don&#39;t munge code/docs, what&#39;s the point?</h3>

<p>I agree that it is still overkill. But as of this writing, there&#39;s no software other than Dist::Zilla that can correctly create a CPAN style distribution other than <a href="https://metacpan.org/pod/ExtUtils::MakeMaker">ExtUtils::MakeMaker</a> and <a href="./Module::Build.html">Module::Build</a>, and I think they&#39;re wrong tools for <i>authoring</i> distributions.</p>

<p>Check out <a href="Minilla.html">Minilla</a> if you think Dist::Zilla is overkill and want a lightweight replacement that achieves the same goal but does less.</p>

<h3 id="Milla?"><a id="Milla"></a>Milla?</h3>

<p>As stated above, I&#39;ve been loving the cleverness of Module::Install (MI), but felt its limitation. Milla is an attempt to put Module::Install&#39;s smartness into Dist::Zilla (without the <code>inc</code> mess).</p>

<p>M::I + Zilla = Milla.</p>

<p>Milla should also remind you of Milla Jovovich, but I couldn&#39;t make up any correlation about it, besides Resident Evil is such a great videogame and movie.</p>

<h1 id="AUTHOR">AUTHOR</h1>

<p>Tatsuhiko Miyagawa &lt;miyagawa@bulknews.net&gt;</p>

<h1 id="CONTRIBUTORS">CONTRIBUTORS</h1>

<p>Ricardo SIGNES wrote <a href="./Dist::Zilla.html">Dist::Zilla</a>.</p>

<p>David Golden wrote <a href="https://metacpan.org/pod/Dist::Zilla::PluginBundle::DAGOLDEN">Dist::Zilla::PluginBundle::DAGOLDEN</a>, which I cargo culted a lot of configuration from, for Milla bundle.</p>

<p>Tokuhiro Matsuno has beaten me to writing <a href="Minilla.html">Minilla</a>, which resulted in me going the Dist::Zilla plugin route. <a href="Minilla.html">Minilla</a> is a sister project, and we try to make them compatible to each other and make it as trivial as possible to switch from/to each other.</p>

<h1 id="COPYRIGHT">COPYRIGHT</h1>

<p>Copyright 2013- Tatsuhiko Miyagawa</p>

<h1 id="LICENSE">LICENSE</h1>

<p>This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.</p>

<h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1>

<p><a href="./Dist::Zilla.html">Dist::Zilla</a>, <a href="Minilla.html">Minilla</a></p></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install Dist::Milla, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm Dist::Milla</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install Dist::Milla</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="./Dist::Milla.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
